System.Collections.ObjectModel.ObservableCollection<T-Klasse>

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Die ObservableCollection<T> Klasse stellt eine dynamische Datensammlung dar, die Benachrichtigungen bereitstellt, wenn Elemente hinzugefügt oder entfernt werden oder wenn die gesamte Liste aktualisiert wird.

In vielen Fällen handelt es sich bei den Daten, mit denen Sie arbeiten, um eine Sammlung von Objekten. Ein gängiges Szenario in der Datenbindung ist beispielsweise die Verwendung eines ItemsControl solchen ListBox, ListViewoder TreeView zum Anzeigen einer Sammlung von Datensätzen.

Sie können jede Auflistung auflisten, die die IEnumerable-Schnittstelle implementiert. Um dynamische Bindungen einzurichten, bei denen die Benutzeroberfläche automatisch nach Einfügungen oder Löschungen in der Auflistung aktualisiert wird, muss die Auflistung die INotifyCollectionChanged-Schnittstelle implementieren. Diese Schnittstelle macht das CollectionChanged Ereignis verfügbar, ein Ereignis, das bei jeder Änderung der zugrunde liegenden Auflistung ausgelöst werden soll.

Die ObservableCollection<T> Klasse ist ein Datentyp, der die INotifyCollectionChanged Schnittstelle implementiert.

Bevor Sie eine eigene Auflistung implementieren, erwägen Sie ObservableCollection<T> oder einer vorhandenen Sammlung Klassen, z. B. List<T>, Collection<T>, und BindingList<T>, a. Wenn Sie über ein erweitertes Szenario verfügen und Ihre eigene Sammlung implementieren möchten, sollten Sie die Verwendung in IListBetracht ziehen, die eine nicht generische Auflistung von Objekten bereitstellt, auf die einzeln nach Index zugegriffen werden kann. Die Implementierung IList bietet die beste Leistung mit dem Datenbindungsmodul.

Hinweis

Um die Übertragung von Datenwerten von Bindungsquellobjekten an Bindungsziele vollständig zu unterstützen, müssen jedes Objekt in Ihrer Auflistung, das bindbare Eigenschaften unterstützt, einen geeigneten Benachrichtigungsmechanismus für Eigenschaftsänderung implementieren, z. B. die INotifyPropertyChanged Schnittstelle.

Weitere Informationen finden Sie unter "Binden an Sammlungen" in der Datenbindungsübersicht.

Hinweise zur XAML-Verwendung

ObservableCollection<T> kann als XAML-Objektelement in Windows Presentation Foundation (WPF) in den Versionen 3.0 und 3.5 verwendet werden. Die Nutzung hat jedoch erhebliche Einschränkungen.

  • ObservableCollection<T> muss das Stammelement sein, da das x:TypeArguments Attribut, das zum Angeben des eingeschränkten Typs des Generischen ObservableCollection<T> verwendet werden muss, nur für das Objektelement für das Stammelement unterstützt wird.

  • Sie müssen ein x:Class Attribut deklarieren (dies bedeutet, dass die Buildaktion für diese XAML-Datei oder eine andere Buildaktion sein Page muss, die den XAML-Code kompiliert).

  • ObservableCollection<T> befindet sich in einem Namespace und einer Assembly, die anfänglich nicht dem Standard-XML-Namespace zugeordnet ist. Sie müssen ein Präfix für den Namespace und die Assembly zuordnen und dann dieses Präfix für das Objektelementtag verwenden ObservableCollection<T>.

Eine einfachere Möglichkeit zum Verwenden ObservableCollection<T> von Funktionen aus XAML in einer Anwendung besteht darin, Ihre eigene nicht generische benutzerdefinierte Auflistungsklasse zu deklarieren, die von ObservableCollection<T>diesen abgeleitet wird, und sie auf einen bestimmten Typ beschränkt. Ordnen Sie dann die Assembly, die diese Klasse enthält, zu, und verweisen Sie sie als Objektelement in Xaml.